1. Field of the Invention
The present invention relates generally to telecommunications. More particularly, the present invention relates to DSL and wireless modems utilizing low density parity check (LDPC) codes and methods of simply generating such LDPC codes.
2. State of the Art
LDPC codes were invented by R. Gallager in 1963. R. G. Gallager, “Low-Density-Parity-Check Codes”, MIT Press, Cambridge, Mass. 1963. Over thirty years later, a number of researchers showed that LDPC code is a constructive code which allows a system to approach the Shannon limit. See, e.g., D. J. C. MacKay and R. M. Neal, “Near Shannon limit performance of LDPC codes”, Electron. Letters, Vol. 32, No. 18, August 1996; D. J. C. MacKay, “Good Error-Correcting Codes Based on Very Sparse Matrices”, IEEE Transactions on Information Theory, Vol. 45, No. 2, March 1999; D. J. C. MacKay, Simon T. Wilson, and Matthew C. Davey, “Comparison of Constructions of Irregular Gallager Codes”, IEEE Transactions on Communications, Vol. 47, No. 10, October 1999; Marc P. C. Fossorier, Miodrag Michaljevic, and Hideki Imai, “Reduced Complexity Iterative Decoding of LDPC Codes Based on Belief Propagation”, IEEE Transactions on Communications, Vol. 47, No. 5, May 1999; E. Eleftheriou, T. Mittelholzer, and A. Dholakia, “Reduced-complexity decoding algorithm for LDPC codes”, Electron. Letter, Vol. 37, January 2001. Indeed, these researchers have proved that LDPC code provides the same performance as Turbo-code and provides a range of trade-offs between performance and decoding complexity. As a result, several companies have suggested that LDPC code be used as part of the G.Lite.bis and G.dmt.bis standards. IBM Corp., “LDPC codes for G.dmt.bis and G.lit.bis”, ITU—Telecommunication Standardization Sector, Document CF-060, Clearwater, Fla., 8-12 Jan. 2001; Aware, Inc., “LDPC Codes for ADSL”, ITU—Telecommunication Standardization Sector, Document BI-068, Bangalore, India, 23-27, Oct. 2000; IBM Corp., “LDPC codes for DSL transmission”, ITU—Telecommunication Standardization Sector, Document BI-095, Bangalore, India, 23-27, Oct. 2000; IBM Corp., “LDPC coding proposal for G.dmt.bis and G.lite.bis”, ITU—Telecommunication Standardization Sector, Document CF-061, Clearwater, Fla., 8-12 Jan. 2001; IBM Corp., Globespan, “G.gen: G.dmt.bis: G.Lite.bis: Reduced-complexity decoding algorithm for LDPC codes”, ITU—Telecommunication Standardization Sector, Document IC-071, Irvine, Calif., 9-13 Apr., 2001.
LDPC code is determined by its check matrix H. Matrix H is used in a transmitter (encoder) for code words generation and in a receiver (decoder) for decoding the received code block. The matrix consists of binary digits 0 and 1 and has size Mk*Mj, where Mk is the number of columns, and Mj is the number of rows. Each row in the matrix defines one of the check equations. If a “1” is located in the k'th column of the j'th row, it means that the k'th bit of the code block participates in the j'th check equation.
Matrix H is a “sparse” matrix in that it does not have many “ones”. Generally, the matrix contains a fixed number of “ones” Nj in each column and a fixed number of “ones” Nk in each row. In this case, design parameters should preferably satisfy the equation:Mk*Nj=Mj*Nk  (1)Although it is convenient to have equal numbers of “ones” in each column and in each row, this is not an absolute requirement. Some variations of design parameters Nk and Nj are permissible; i.e., Nk (j) and Nj (k) can be functions of j and k, correspondingly. In addition, another important constraint for matrix design is that the matrix should not contain any rectangles with “ones” in the vertices. This property is sometimes called “elimination of cycles with length 4” or “4-cycle elimination”. For purposes herein, it will also be called “rectangle elimination”.
Generally, there are two approaches in the prior art to designing H matrices. The first approach was that proposed by Gallager in his previously cited seminal work, R. G. Gallager, “Low-Density-Parity-Check Codes”, MIT Press, Cambridge, Mass. 1963, and consists of a random distribution of Nj ones within each matrix column. This random distribution is carried out column by column, and each step is accompanied by rectangle elimination within the current column relative to the previous columns. The second approach to H-matrix design is based on a deterministic procedure. For example, in the previously cited IBM Corp., “LDPC codes for G.dmt.bis and G.lit.bis”, ITU—Telecommunication Standardization Sector, Document CF-060, Clearwater, Fla., 8-12 Jan. 2001, a deterministic H-matrix construction is proposed which includes identity matrices and powers of an initial square permutation matrix.
Both of the prior art approaches to designing H matrices have undesirable characteristics with respect to their implementation in DSL and wireless standards. In particular, the random distribution approach of Gallager is not reproducible (as it is random), and thus, the H matrix used by the transmitting modem must be conveyed to the receiving modem. Because the H matrix is typically a very large matrix, the transfer of this information is undesirable. On the other hand, while the deterministic matrix of IBM is reproducible, it is extremely complex and difficult to generate. Thus, considerable processing power must be dedicated to generating such a matrix, thereby adding complexity and cost to the modem. Besides, this approach does not allow constructing a matrix with arbitrary design parameters Mk and Mj.